package com.sjd.mall.domain;

import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单表(SjdOrder)表实体类
 *
 * @author seer
 * @LocalDateTime 2022-01-11 22:28:04
 */
@Data
public class SjdOrderDO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 商品类型：1-商品，2-课程
     *
     * @see com.sjd.mall.enums.GoodsClass
     */
    private Integer goodsClass;

    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 订单状态，字典：ORDER_STATUS
     */
    private Integer orderStatus;

    /**
     * 订单状态时间
     */
    private LocalDateTime orderStatusTime;

    /**
     * 会员id
     */
    private Long memberId;

    /**
     * 会员手机号
     */
    private String memberMobile;

    /**
     * 订单金额
     */
    private BigDecimal orderAmount;

    /**
     * 下单时间
     */
    private LocalDateTime orderTime;

    /**
     * 折扣金额
     */
    private BigDecimal discountAmount;

    /**
     * 应付金额
     */
    private BigDecimal payableAmount;

    /**
     * 支付截止时间
     */
    private LocalDateTime paymentDeadline;

    /**
     * 实付金额
     */
    private BigDecimal paymentAmount;

    /**
     * 支付时间
     */
    private LocalDateTime paymentTime;

    /**
     * 收件人姓名
     */
    private String receiverName;

    /**
     * 收件人手机
     */
    private String receiverMobile;

    /**
     * 收件人地址
     */
    private String receiverAddress;

    /**
     * 发货时间
     */
    private LocalDateTime deliverTime;

    /**
     * 快递公司
     * 字典：biz_courier_company
     * 参照《快递100快递公司标准编码-20220119084915.xlsx》
     */
    private String courierCompany;

    /**
     * 快递单号
     */
    private String courierNo;

    /**
     * 收货时间
     */
    private LocalDateTime receiptTime;

    /**
     * 能否退款
     */
    private Boolean isCanRefund;

    /**
     * 退款时间
     */
    private LocalDateTime refundTime;

    /**
     * 取消时间
     */
    private LocalDateTime cancelTime;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    private LocalDateTime updateTime;

}
